// 小美有一个数组，她希望删除k个元素，使得剩余的元素两两之间互为倍数关系。你能告诉小美有多少种删除方案吗？
//
// 由于答案过大，请对10^9+7模。
//
// 输入描述
//
// 第一行输入两个整数n,k(1<=k<=n<=10^3)表示数组长度，删除的元素数量。
//
// 第二行输入n个整数表示数组a(1<=ai<=10^9)。
//
// 保证给定的数组中不存在两个相等元素。
//
// 输出描述
//
// 输出一个整数表示答案。
let arr = [1,4,2,3,6,7]
function meiDel(arr,k) {
    //? 删除k个 剩arr.length - k个  那么转化为找arr.length - k个元素 并判断两两直接是否成倍数
    let leftEle = arr.length - k
    function backtracking(temp,startIndex) {
        if (temp.length === leftEle) {
            if (judge(temp.slice())) {
                count++
            }
        }
        for (let i = startIndex; i < arr.length; i++) {
            temp.push(arr[i])
            backtracking(temp,i + 1)
            temp.pop()
        }
    }
    let count = 0
    backtracking([],0)
    return count
}

function judge(arr) {
    arr.sort((a,b) => b - a)
    for (let i = 0; i < arr.length - 1; i++) {
        for (let j = i + 1; j < arr.length; j++) {
            if (arr[i] / arr[j] !== Math.floor(arr[i] / arr[j])) {
                return false
            }
        }
    }
    return true
}

console.log(meiDel(arr, 4));
